#include <stdio.h>
#include <mpi.h>

void extractMap(int** graph, int n, int m, int** exmap) {
	char usedn[n + 1];

	for (int i = 0; i < n + 1; i++) {
		usedn[i] = '0';
	}

	for (int i = 1; i < n + 1; i++) {
		for (int j = n + 1; j < n + m + 1; j++) {
			if (graph[i][j] > 0) {

				if (usedn[i] == '0') {
					usedn[i] = '1';
				}
			}
		}
	}

	for (int j = n + 1; j < n + m + 2; j++) {
		int num = 0;
		for (int i = 1; i < n + 1; i++) {
			if (graph[i][j] > 0) {
				exmap[j - n][num] = i;
				num++;
			}
		}
		if (num < n / m) {
			for (int k = 1; k < n + 1; k++) {
				if (usedn[k] == '0' && num < n / m) {
					exmap[j - n][num] = k;
					usedn[k] = '1';
					num++;
				}
			}
		}
	}

}

void showgAssignment(int** exmap, int mhost, int nfiles)
{
	printf("show Assignment!\n");
	for (int u = 0; u < mhost; u++)
	{
		for (int v = 0; v < nfiles; v++)
		{
			printf("%d, ", exmap[u][v]);
		}
		printf("\n");
	}
}